You did it! That cracked the case - I realized that the only way it could do that on both models is if somehow the original world matrix for the whole model was being transformed by bone1 … then I noticed this little culprit in my own code:
world = blendTransforms[mesh.ParentBone.Index]
And turns out even though I thought mesh.ParentBone.Index would always be 0… it is 1
(not sure why)
But since I’m ensuring the meshes are consolidated to 1 part, I can always use 0 like this:
world = blendTransforms
EDIT: instead don’t use world = blendTransforms[some_index] since these are more for regular model hiearchy where things are placed around the world. Instead just do world = player_world_transform; // something like that
And that fixes everything!