If the pin effect is constant, no need to overload body code and "on every tick events" more than needed !.
In my case, the shadow is pinned to a character that can move 8 ways and jump (like "Double Dragon", "Streets of Rage", "TNMT" etc.)
When the player (or any other mob) jumps, I used to unpin the shadow, move the mob up a bit, shrink the shadow and repin it. Worked fine until I tried jumping and changing the direction mid-jump (I'm not sure whether I'll deactivate this) and the shadow got out of sync.
This is why I created a shadow function that moves the shadow of each mob according to the mobs X/Y (collission sprite) as well as Z value (animated sprite). By seperating shadow calculation and jump function I can implement in-jump movements easier (double jump, interceptions and collisions, in-jump attacks) but bloat my code a bit more.
I'm running out of events soon and don't have the allowance (of my better half) to spend money on this pet project of mine. She said I should build something like Bejewled or a BubbleShooter...
Maybe I'll start an IndiGoGo Project or something to gather the money for some better artworks, sprites and a license to keep going.