The only "REQUIRED" directories that are needed are the Player directories.
FS2_open will use any files found in the mod directory. note any files that are searched for. and by that i mean, fi you have a model that uses a PCX file named Fighter99.pcx and you have a duplicate of it in the mod dir, then it will use the duplicate, not the one found in the plain freespace2/maps/
But you do not need to have all your various files in the mod dir, if fs2 finds them in the default locations it will use them if they are needed, even when you are using the mod flag. But if there is a duplicate in the mod dir, it will use the duplicate. That is, if you are using the mod flag.
Confusing

.
i hope you are aware that 'mymod' can be anything you desire
fs2_open -mod mymod
looks first for files in freespace2/mymod/data/maps->models->, etc
fs2_open -mod tpb
looks first for files in freespace2/tbp/data/->\models->, etc
fs2_open -mod fs1port
looks first for files in freespace2/fs1port/data/maps->models->, etc
fs2_open -mod someothercoolmod
looks first for files in freespace2/someothercoolmod/maps->models->data, etc
-EDIT;
a little late edit but, in a short
if fs2 is installed in c:\games\freespace2
then this is the game root; C:\games\freespace2\
So what i did in short, was that in case of the mod flag, i created an extra root to be searched through for files.
and that root would be in case of -mod somcoolmod
C:\games\freespace2\somecoolmod\
fs2 treats the second root as it treats the first root, but the second root never gets activated if the mod flag is not used.
and if the second root is being activated, it is being given priority over the first root so that files found in the second root will be used instead of identical files found in the first root.
So in short, you dont need to have all your extra files in the second root, if they are found in the first root, and not in the second, they will still get used. but they will get used everytime you start up freespace2 in the case of TBL files.
But remember, they will ofcourse only be used if FS2_open needs them.
also there is restriction on the length of the path.
it can max be 128 characthers long. but you should never reach that.
for example
C:\Games\FreeSpace2\somecoolmod\data\players\images\
is 52 chars long
Now if i did´nt have some many dam irons in the fire i would add mod support to FRED2.
BUT since people who work on a mod almost certainly does it most of the time, they will never need it.
mod support is user-freindly, not very developer freindly