If I was so inclined I could probly add in shell ejection easily, just add two data entries into the particle data type (orientation matrix and model number) if the particle has a valid model number (ie, it isn't -1) render the model.
that would be the quick way, slightly more effort would be seperateing the rendering steps for the model so that in loads the vertex buffer and texture, then calls to draw primitive and seting the world matrix to the position and orientation of the specifyed particle, further particles should be sorted by model number
that said I have no desire to do that