My proposal is extend LinkToLocalSpaceOf by optional parameter - bone. It will allow implement for example horse. When player sitting on the horse's back, it should move up and down as the back bones of the horse move, for example, when the horse gallops or runs.
proto native void LinkToLocalSpaceOf(notnull IEntity child, vector pLocalSpaceMatrix, int bone);
Not sure if AddChild will works without glitches when want attach player to animal.