xyz Setting up blank scene is troublesome, as real scene tend to be complicated and so in the end ill have to debug the complex scene.
Also i am lazy 😃
BTW. Seems like i finally got somewhat the correct positions.
Seems a bit off with this one, as to me it seem sto be floating too much but its most definately (aproximately) in position.

so the finisher move was this:
This part stays the same:
var total_size:Vector3
var p_aabb = picked_up_obj.item_mesh.global_transform * picked_up_obj.item_mesh.get_aabb()
for n in hand_node.get_children():
if n is Item:
var child:Item = n
var mesh=child.item_mesh
var m_aabb = mesh.global_transform*mesh.get_aabb().abs()
total_size.y = max(total_size.y,m_aabb.end.y) - hand_node.global_position.y
The c
bellow is the offset thing that works for some reason. and then i just add the offset to the total_size which is the top_most_y of all child nodes in the hand_node.
var c = picked_up_obj.global_transform.origin-p_aabb.get_center()+(p_aabb.size/2)
var gg = total_size + c
total_size.y = gg.y
return total_size
Works if hat is rotated a bit too

Now need to pull in them meshes closer with collision meshes.
One way would be lerp top mesh Y to negative value until the top mesh collides with bottom mesh.