Humanoid rig problem

I am working on getting a humanoid rig to work properly in unity, but is having problem with getting the animation to be 100% accurate. I setup everything and could make the animation work, but it is not perfectly accurate. For example, the head and body’s rotation seems to offset slightly from the original animation in Motionbuilder. The offset is quite noticeable and I have no idea what caused it. Could anyone help me on this?

The setup I use is this. The character has 4 spine joints

This is the problem.
If you change the character to only have 2 spine joints - do you see any offset?
Just recreate the rig with 2 spine joints, and setup a simple animation cycle to test.