Why do legacy & humanoid animations look different on the same character?

I have a character with an animation matching it’s bone structure. If I set the character to legacy and the animation to legacy I get the animation on the right. However if I set the same character to humanoid and the same animation to humanoid I get the animation on the left. I don’t understand why the animation is distorted when changed to humanoid; there are no errors, the character is properly set up in T pose, and the muscle settings have all been left in the default positions. I can also retarget the same animation to any other humanoid character, even with a different bone structure, and the animation looks exactly as on the left each time. Could someone please explain to me why this is happening because I’m really confused by this? It seems to me like mecanim has offset the position of some of the character’s bones in the animation.

Ok, I think I’m starting to work out some of the problems behind this, Mecanim being the main one so far. For some reason when I set the animation to humanoid the animation’s T pose gets messed up, whereas in legacy mode the T pose is unchanged. I don’t understand why since the character’s (as oppose to the animation’s) T pose stays fine. I’ve found that when I reset the animation’s pose and click enforce T pose in the rig options that that improves things a little, but not completely. Another culprit which was messing up the animations is “Key Frame Reduction” in the animation tab. Turn this crap off if your animations look strange when imported since this was totally changing the look of my animations.

After reading posts where the problems were similar to mine, especially here and here, it’s evident that the Mecanim humanoid is the single thing causing the most problems here and that perhaps this technology is still not streamlined enough and adaptable for my purposes. I have no other choice but to fall back to either the generic or even more reliable the legacy system since these are causing fewer issues. Hopefully once these things get fixed by Unity I’ll be able to use Mecanim in the future. Hope this is useful to someone with similar problems, and if anyone has further suggestions or tips feel free to share them. Cheers