flukey thing with $address (and a few other identifiers that use commas)
Try using this re-write
Code:
alias mm {
  var %a = $nvnick($chan,0)
  while (%a) {
  var %addr = $nvnick($chan,%a)
  %addr = $address(%addr,5)
  if (%addr !isignore) && (%addr !isprotect) .timer 1 $calc(%a * 9) .msg $!nvnick($chan,%a) $1-
    dec %a
  }
}

I'm going to presume that this alias is called from within a channel, otherwise $chan will return $null