Confusion on how <dart> {structured/1} and geomNode origin affect joint displacement

I’m currently working on a exporter from blender to egg. However, I’ve faced challenges in properly translation skeletal animation to the egg format. If I use {structured} to preserve the structure (and origin) of my objects in blender when they are converted to in the animated character description, my exporter (as is) gives me this:

If I instead have {1}, while the animation export is still far from perfect, it far more resembles the intended result:

I also tried to move the origin of each mesh to be within itself, instead at the character’s (0,0,0) (at the feet) which gave me this:

I assumed before that joint displacement of vertices would be joint dependent. can anyone explain how the origin of a mesh affects this process?

I did some research, and after fixing a few minor things (I.E. getting blender to give me rotations in RPH order) I was able to successfully identify the issue. Essentially, in panda3d a joint expects any geomNode it’s deforming to have the same exact origin as what the “armature” would be in blender. (So, the origin has to be the same as the offset of any/all top-level bones.)