So, I was bored again so I started to look through the .mesh files in detail.
If you look in the _units folder you will of course see the folders that contain the .mesh files of all the in game units. These .mesh files are collections of other .mesh files (the weapons, heads, arms, etc). Open one in a hex editor.
If you look in the weapon_library, you will find the .meshes of the weapons. Open the unit you opened weapon in the hex editor as well.
You can find the hex values of the weapon meshes in the _unit meshes (I know we already knew they were in there). I don't mean just the name, but all the actual data of a weapon mesh matches the data in the _unit mesh. Which makes sense, because we know it contains the weapon info.
What happens if you find all the references of one weapon in the _units mesh, and replace it with another weapon? I don't know, I haven't got that far yet, but I imagine it might be possible to replace weapons with other weapons (and update the .modeldb to point the weapon attachment texture to the right file)
It's a serialized file, just like the .modeldb, so my fear is that there is meta data (like the string lengths in .modeldb) that might make it much harder to replace weapons.
Ok, going back to working on my toolset now.
BrandonM