ok...
"2) box checking was based on View position rather than being based on Eye position and the offset from parent model like it should have been"
that was intentional, View_position is the camera rotated into the model's frame of reference, you just see if it's coords are bigger than the box and it works, there is less math involved in evaluating a box this way, and if you base it off of the eye position then you need to sum up all the offsets in lower children, otherwise it isn't right. a lot of the code involved was originally coded to minimize the cost of a render box evaluation (and the failure there of).
----------
no I don't have access to the SoL internal
----------
I have in a separate code base some work done on getting translation working for triggered animations, the biggest problem is related to bounding boxes and when an object moves far enough that it is no longer in it's parent's bounding box it gets culled from collision detection when it shouldn't. the obvious solution to this is the check all objects that have a translation even if they fail up stream bounding box checks, but given the nature of the object hierarchy tree this is a bit more complicated than it would first seem, I'll probably need to add a subobject flag that indicates that a child has a translation applied.
there is also exactly 3.7 ****loads of places were the code assumes that an object or subsystem's position never changes, and so it will for example precalculate a subsystem's position relative to the ship.
----------
"Is the "$look_at:subobject number" in the sumbmodel properties field all that's needed to get this working ?"
yes, as mentioned it's a non-subsystem animation type, as it does not need to keep track of any information between frames (like triggered animations do) they don't need to be part of a subsystem
-----------
another way you could fake translations in the mean time would be with use of several invisible subobjects that would form a trapezoid, you just squeeze the angles and the top would shrink.