Should not the program end at the first break? From what I read about the MIPS branch opcodes, the instruction immediately following the branch instruction (in the so called delay slot) is always executed first, no matter if the branch takes place or not; the branching takes place only thereafter. (This peculiar behaviour is to be for performance reasons).
"If the contents of GPR rs and GPR rt are not equal, branch to the effective target address after the instruction in the delay slot is executed."
- MIPS32™ Architecture For Programmers Volume II, Revision 0.95, Page 76
Not a problem for the challenge, though, as "pip" was quickly rejected as an answer.