Well, you gotta start somewhere.

If you are going to change this in the way maroon proposed, then you may as well also want to grab this opportunity to increase the number of parameters up to like for example $6, as some networks accept more than 3 parameters per MODE. So instead of "$$1 $2 $3", make it "$$1 $2 $3 $4 $5 $6". Hell, why not even just "$$1-" and its good forever.

Code
.Op:/mode # + $+ $str(o,$0) $$1-
.Deop:/mode # - $+ $str(o,$0) $$1-
.Voice:/mode # + $+ $str(v,$0) $$1-
.Devoice:/mode # - $+ $str(v,$0) $$1-


By the way, not only popups.ini has this issue, but aliases.ini as well.

Code
/op /mode # + $+ $str(o,$0) $$1-
/dop /mode # - $+ $str(o,$0) $$1-