I've known the r3 thing for a while, the idea of using the address right after a bl is something I haven't really thought about. It's a smart idea, although it's good practice that r3 and f1 should always be considered unsafe since they are going to potentially beĀ used as return values of the said function.
Super Mario Eclipse, what Super Mario Sunshine could've been.