imo a flaw of the actual magic system is non reliability of spells
magic should be powerful and feared
so i cant like a fireball who does 1 dmg on a snake cause he s got 2 armor
my IDEAL (yeah i know some ppl love randoms
) system would be average dmg+-10% and not more
but ok from this system i think the best way to improve is put the MINIMUM (the max resist possible) at 50% of spell dmg
if a creature is very defended thats the max he can get, he shouldnt void the spell (there are in fact other spells who can do that)
a snake cant full resist a fireball, cmon 
a bit of armor/defense would result in a 20 30% of resist if the roll is good and thats it
in melee is ok to have a bit of surprise cause there is retaliation and multi attacks and you are close to each other
but spells are different you should rely on them