Here's how the mesh looks like in MilkShape:
Here's how the keyframe looks like:
Here's how it looks in my game:
Does anybody know why the hand vertices aren't getting transformed by the rotation matrices?
Relevant source code:
https://github.com/polyf/battlecomp/blob/master/common/draw/ms3d.cpp
https://github.com/polyf/battlecomp/blob/master/common/draw/ms3d.h
https://github.com/polyf/battlecomp/blob/master/common/math/matrix.cpp
https://github.com/polyf/battlecomp/blob/master/common/math/matrix.h
https://github.com/polyf/battlecomp/blob/master/common/math/vec3f.cpp
https://github.com/polyf/battlecomp/blob/master/common/math/vec3f.h
[edit]
I figured it out. Since the hand bones didn't have any keyframes, I was setting the absolute mesh matrix instead of using the parent matrix multiplied by the relative hand matrix.