I like your code Jason, but unless you have a song that is an hour long I still like my result better. Anyway this will give you a couple ways to get the look you want. :-)
The second one I posted, for the older versions of mIRC, will return it in minutes and seconds... I personally don't like the $duration() format and tend to use $gmt()
This is the alias I use...
Code:
alias -l mp3len {
var %len = $calc($sound($1-).length / 1000)
return $gmt(%len,$iif(%len > 3600,hh:nn:ss,nn:ss))
}