how about instead of overlapping with offset you start using  dist (sprite1.x, sprite2.x, sprite1.y, sprite2.y) <32  ->   destroy sprite1 ? 
problem with overlapping -  imagine my object is a big  ">"   form like this one (sprite 1).  And now imagine your second sprite is a dot  "." 
if you check for overlapping with -32 x and y - they will never overlap and therefore your event will never fire, even though the dot is  under 32 distance from <. 
Also you have to take in that origin point of your sprite is the point where you calculate your stuff from. not borders.  sprite x,y  = origin point.  So using distance from sprite 1 to sprite 2 you get  this:
if ( dist (.x,.y,<.x,<.y) < 32)
 destroy < 
(it won't matter if left, right top or down, each will work. )
math pls.