I think the big question here is, do mobs crit spells on Live? I don't remember them critting, but it may have changed. If not, I'm sure this would do well as custom code.
Looking into the code, GetActSpellDamage is a virtual function already
defined in zone/mob.h in the Mob class, and just returns the damage passed to it, unmodified, by default. That means we just need to add the function for NPCs somewhere (probably also in zone/effects.cpp & declared in zone/npc.h).