First of all, I get the impression that the days of 'put files in the right place' are over. Rather, I believe that mods will need to be compiled in a similar fashion to a C++ program, and then packed into a .big. After that, the original code will be unretrievable except for those who still have it. I foresee the emergence of open source modding...
Now, looking at the way models and stuff are made, it seems that using a model or any other asset in a file is merely a matter of <Include-ing it into the relevant file. In fact, I think that, in the end, the entire mod is composed of nothing more than a huge tree of files, one include-ing the other until everything is covered. So this would mean that there are NO SET FILENAMES and NO FIXED FOLDERS to put stuff in. As long as a file is included from another, it doesn't matter where it is. This gives modders an enormous freedom, but of course it comes at the price of no longer having a fixed structure that all modders can agree on. If I wanted to put all my GDI XML files in CnC3Xml/SomeStrangeFolderName rather than CnC3Xml/GDI, I could. I'd just have to make sure that all Include references are changed to reflect the new location.
The code itself seems easy enough, but I'm guessing most can be learned by looking at existing code. It also seems that apart from the XML structure, most of it actually looks pretty much like the INI files most of us here remember from Generals. Instead of having a list of INI declarations like so:
Object GDIPredator BuildCost = 1100 BuildTime = 11 End
You just get a similar structure:
<GameObject id="GDIPredator" BuildCost="1100" BuildTime="11" etc... />
So even if it's superficially different, I still believe that most of it is actually pretty much the same. Just a matter of getting used to. Also note the id= attribute. That's the one that actually gives things a name. It's therefore very important to give everything a unique id= tag! I'm not sure if the code has the concept of 'namespaces'. Namespaces would be a system where names can be grouped, and different units can share the same id= attributes. That would mean that if there were a separate namespace for Units, and another for Sounds for example, you could have both a Sound and a Unit with GDIPredator as the id= attribute. I'm just guessing here, but so far it doesn't look like the files have any id namespaces at all. So that means that id= attribute need to be unique across the entire mod/program. Keep this in mind!