Currently I'm doing an upgrade to the Ogre sinbad model by Omniter. It's a great model and makes a great mascot for Ogre, but there some aspects of the way it was modeled that make it a little harder to use than it could be. So I'm doing the following:
- Making it a bit friendlier in the NLA editor (naming the channels after the matching animation tracks, etc)
- Making the model face into the screen instead of out (most artists like the models to face them, but for Ogre it's better to face away, that way meshes face the direction of their scene node automatically).
- Moving the origin to between his feet. Sinbad is modeled with his origin in his chest. Again, this is common for artists from what I've seen, but makes placement in a game harder.
- Rescale the model to SI units (metres in this case).
Of course modifying an already rigged and animated model in this way is always tricky.
So far I've got the first 3 steps done. Sinbad is rotated and his origin is correct. It took a lot of experimenting (and google) to get it working with all animations correct after exporting to Ogre.
But scaling... argh.
As a test, I've been scaling by 0.1, making Sinbad 10% of his original size.
Scaling is easy if I just scale the entire thing in object mode. But after export the model is the same size (since the mesh and bone data wasn't scaled, just the node that contained it). That's just like scaling the SceneNode in Ogre.
The required technique is to scale the armature and mesh individually in edit mode. That works correctly for almost everything, except a few bones are doing odd things:

This image shows the same frame (frame 1 of the dance animation). The top pic is the original. The bottom pic is after scaling by 0.1. (The camera was positioned by hand, so it looks a little different for a few bones that are really the same). When animated he also bounces up and down by a huge amount.
From what I can tell (after hours of experimenting) is that scaling an armature doesn't scale the relative translation of bones from the initial pose in keyframes. If I manually go into a bone in pose editor mode and scale the bone's translation by 0.1, it seems to be in the right place.
This is either a blender bug or I'm doing something wrong.
One way to fix this: use python to iterate through every animation track's keyframe and scale translations of every bone by 0.1 (or whatever scale factor I decide on for the final version). All bones with a translation that's not 0,0,0 are placed wrong. But I've never coded in Python and don't know the Blender API.
I did manage to get Python to tell me the translation value of a specific bone in the current frame in the current animation, but it's read only. I need to get into the keyframes and tracks, but I don't know how yet.
(Got some more plans for sinbad, then it's on to the ninja!)