Hmm, so you will have lots of significant coordinates to work with.
By the way it should not be too difficult to write something like this; I have not tested it because it is just an illustration.
Function GetLimbCenter(object, limb, vector)
Local x#, y#, z#
Lock Vertexdata For Limb object, limb
For v = 0 to Get VertexData Vertex Count() - 1
x# = x# + Get VertexData Position X(v)
y# = y# + Get VertexData Position Y(v)
z# = z# + Get VertexData Position Z(v)
Next v
count# = Get VertexData Vertex Count()
x# = x# / count#
y# = y# / count#
z# = z# / count#
Inc x#, Object Position X(object)
Inc y#, Object Position Y(object)
Inc z#, Object Position Z(object)
Set Vector3 vector, x#, y#, z#
Unlock VertexData
EndFunction
It should only take you 5 or 10 minutes to get that to work; then you have your function. And that is the point of programming, to make things work the way you want it to work.
I was wondering if you used 3DSMax to model the scene, it might fix your problems; see what happens if you take Anim8tor out of the procedure.
I said all of this before but you seem to have skipped the message.