I have a hard time picking a winner because I am highly doubtful of Mosley right now. Yes, I know he looked intense and beyond explosive against Margarito but I have a few questions about that. Was Mosley so explosive for emotional reasons having just gotten divorced from his wife? Buster Douglas also pulled off a spectacular win against Mike Tyson when emotionally charged by the death of his mother. Did the whole plaster wraps scandal right before the fight destroy Margarito mentally? From round one, Margarito did not seem right when he faced Mosley. Even when he walked into the ring, he had this look like "oh shit, I got busted". I don't think his mind was into it but that's not to say Mosley would not have destroyed him.
If Mosley had another performance after that Margarito win and looked destructive once again against a high caliber opponent, then I would clearly pick him over Mayweather.
However, it was not too long ago that Mosley struggled against a shot Ricardo Mayorga and on some cards was even LOSING THE FIGHT

before getting the knockout in the last round. In fact, if Mosley had lost the last round, he would have been outboxed or outpointed by freaking Ricardo Mayorga. Mayorga also outpointed Forrest.
Either Mayorga is a better boxer than people give him credit for or Mosley and Forrest are not as great technically as people think they are.
Mayweather is supposed to be a better defender and a more polished attacker than Mayorga. Mosley was on the slide IMO before the Margarito fight. If Mosley fights Mayweather in April, he will have been inactive for 16 months or over a year.
If the Margarito fight wasn't just a fluke where the stars aligned for Mosley, I pick Mosley to win. If in reality, we're talking about the Mosley that fought Mayorga, I pick Mayweather to win.