I'd rather have a proper mod.tbl than bastardise the mod.ini to do this.
It's not bastardisation - this is exactly what mod.ini is for, it's just used by the Launcher instead of the FS2 Open directly.
Any data that should only be loaded by one mod
and no other would go in mod.ini. You cannot use tables for that, because tables are always loaded by everything.
Eg: Someone creates a mod (FOO) relying on a previous modpack (BAR). At initial release, neither mod has a modtable.
In a patch release to BAR, a modtable is added. This now breaks FOO, because the new table gets used by FOO even though the designer of FOO did not want it.
Thus FOO is forced to add a modtable to override BAR's and issue a new patch release.
mod.ini on the other hand is
not loaded by everything - only the first mod.ini is ever loaded - and therefore such a change to BAR has no effect on FOO.
This also opens up the possibility of using the data that already exists in mod.ini to enhance the game - like the mod image, the modder's name and credits.
How do you intend to point FS2_open to the right ini file?
That is trivial - exactly the same way basically every other application works, including the browser you're using right now.
Right now, the launcher creates an ini file (or someone makes a link) that contains a section something like the following:
-mod foldername#1 foldername#2 foldername#3 foldername#4 foldername#5 foldername#6 foldername#7 foldername#8 foldername#9 foldername#10 ... foldername#n
The actual mod itself could be any of those arguments, as mods relying on assets from other mods must load some of it before their own data and the rest after. (This is what primarylist and secondarylist are)
Instead of doing this, we pass a single switch in that ini or command line switch:
-modini 'modfolderpath'
(or similar)
modfolderpath can be either a relative path (from the location of the FS2 executable, the default), or an absolute path (from root).
FS2 Open follows that path and opens the mod.ini it finds there.
If there's no mod.ini file there, it opens the folder 'standalone' (including FS2 root vps of course)
FS2 Open then loads everything as it currently does based on that path - essentially building its own modlist.
(Edit for grammar)