Instead of changing the model format, could we not provide a separate model that is which the particles are bound to? And then in the XML file, we can add any number of "particle models" to each skill. The particle models are not actually displayed, but merely serve as an "outline" for binding particles.
To use an example, we could have the regular battlemage model as it is, but also add a model that is just the battlemage's hands as they move during his attack animation. We'd add a link to this model in the attack skill, allowing us to bind particles to this model. Syntax could be something like:
<skill>
<!-- ... -->
<animation path="models/archmage_attacking.g3d"/>
<particle-bounds>
<model path="models/hands.g3d" particles="particles_hand.xml" />
</particle-bounds>
<!-- ... -->
</skill>
In addition to not requiring changes to the G3D format, this approach would allow us to be modular in creating particle bounds. We could have a base model and then models for different bounds which could be used for different skills (eg, we might have particles bound to the hands of a unit for their attack animation only, with different particles for a different animation, and no particles bound for other animations).
However, the G3D viewer should also be updated to be able to load these particle bounds in. This is a little more tricky given that we'd have to load in both a model AND a particle XML.
Side note: perhaps it should be possible to point the G3D viewer at a unit XML and it would be able to load all the animations as they would appear for each skill? This would provide an easy way of loading models with many particles in, and allow previewing units rather than individual models?