I know that this is an old thread, but this page is still the top Google result for most search queries that I used concerning this problem. I didn't like the provided answer because it's too complex and may not work properly if two enemies are at the same position.
After reading more help pages, I've finally managed to create a simple solution. I just wrapped my
enemy movement functions within these conditions:
System | For each Enemy_box
System | Pick Enemy_sprite instance Enemy_box.IID
[/code:3ovk367a]
Since each of my enemy characters is created along with a box, all of them will have a paired IID. When a box hits a wall, only its individual corresponding sprite will be mirrored. I hope that this will be helpful for other beginners.