Задача решилась в лоб - сделал кватернион как есть, и уже в нём поменял значения.
Angles = Quaternion.FromMatrix(
new Matrix3(
f.Rotation[0], f.Rotation[1], f.Rotation[2],
f.Rotation[3], f.Rotation[4], f.Rotation[5],
f.Rotation[6], f.Rotation[7], f.Rotation[8]
)
);
Angles = new Quaternion(-Angles.X, -Angles.Z, -Angles.Y, -Angles.W);
Скелет выстроился, теперь нужно разобрать до конца как хранится иерархия для анимации. А пока, вот вам господин полицмейстер, крайне недовольный тем, что мы над ним проводим опыты (нет, реально, я даже не знал что у них выражение лица такое нагруженное =D )