I've been thinking over the shadows sprites, and the mirror spawning shadows... The problem is:
The Wisp is an amorphous blob. And it spawns humanoid ninja-like shadows. The logic is not very clear. Maybe it might spawn shadows that rather resemble the same amorphous blobs or anything else non-humanoid, and preferably shapeless?
The Mirror spawns the same humanoid ninja-like shadows. While the logic is much better here (and might be left this way), maybe it may look like a better idea to remake mirror shadows in actual mirror reflexions. I mean, really copying player sprite, just a bit darker / color cycled / dither overlayed / or, maybe, turned upside-down :D, maybe with armor, with some standard set of armor/decorations, or without it (as it would require dynamic changing of the enemy sprite, which in turn may look wild if the player changes equipment during the battle). The "reflexion" may also go further and copy not only the outlook, but also behavior / skills (like using potions / spells).
Maybe, the mirror itself can also display player's head image instead of that read spot (candle flame? tongue? throat? gem?)
I really like your idea.
Maybe we should make a difference between shadows spawned by a whisp and 'reflections' spawned by a mirror.
I'm with you if you say that shadows should have a amorph form instead of a humanoid body. Maybe it would be possible to make something like 3 graphics for shadows and whisps and let them circle trough them with every turn.
Furthermore it would be possible to overwritethe graphic of a reflection with a altered player graphic every time when screen.draw_player() is called.
Only the face in the mirror maybe could be a bit more difficult but should be possible as well.