copeg, I took your post as a jumping point and found the solution for my first problem (have not looked into the second yet).
In case anyone comes across this same problem, the solution for my first problem was:
(SELECT `Name`, `Val2` AS value FROM `someTable` ORDER BY `Val2` DESC LIMIT 3) UNION (SELECT `Name`, `Val3` AS value FROM `someTable` ORDER BY `Val3` DESC LIMIT 3) ORDER BY value DESC LIMIT 3
The statement in the first parentheses orders the items in Val2 and sets the ordered list with the name: "value". The statement in the second parentheses does the same with Val3. The UNION combines the two into one result. And the final ORDER BY statement, where it orders by "value", orders the UNIONed result by the combination of Val2 and Val3 (with the result set column alias being 'value').
And, it DOES allow for repeats.
I'm going to see if I can hammer out the second statement later today.