It's efficient enough, it's just horrible to read and work with because of all the weird edge cases. 
It also results in the instashield graphics replacing the main shield rather than overlaying it because of the shared VRAM. As it happens, that works pretty well with the classic shield. I don't know that it would with the elementals.
If you want to stop the shields from running their animations, within the double-jump code we were tweaking before, look for any lines that set $FFFFCD08. From the shield's point of view this is $20(a0), I.e. it sets the animation. That should keep them from kicking up rough.
As for the CNZ/MHZ error, I managed to recreate this by changing the line at loc_68D8 from
So you probably want to change that back to #1 if it's set differently.
It also results in the instashield graphics replacing the main shield rather than overlaying it because of the shared VRAM. As it happens, that works pretty well with the classic shield. I don't know that it would with the elementals.
If you want to stop the shields from running their animations, within the double-jump code we were tweaking before, look for any lines that set $FFFFCD08. From the shield's point of view this is $20(a0), I.e. it sets the animation. That should keep them from kicking up rough.
As for the CNZ/MHZ error, I managed to recreate this by changing the line at loc_68D8 from
cmpi.w #1,(Player_mode).wto
cmpi.w #2,(Player_mode).w.
So you probably want to change that back to #1 if it's set differently.

