You should use a lookup table for the width. That's much easier to maintain.
li r17,WidthTable ; load width table offset
addu r17,r17,r3 ; use character number as index
lbu r17,(r17) ; load width
nop
....
WidthTable:
.byte 0,0,0,0,0,0,0,0,0 ; one byte per character index
...
You can also use li to load immediates, as shown in my example. And I'd recommend using @@ for local labels so that you don't run out of label names fast. They are valid until the next global (without @@) label and can be redefined after that.