As near as I can tell, the specification for mult.asm is simply to store the value produced by multiplying the contents of R0 and R1 into R2. I looked pretty carefully (and perhaps I missed it), but I did not see anything saying that the contents of R0 and R1 need to be preserved. Yet the test script will only pass if they are.
Did I miss something and this is given as part of the specification? If not, then either it should be so stated or the test script should be modified so as not to require it.