I wonder if it is possible to further simplify my design below:
I'm using a P-MOSFET SSM6J801R or similar.
This design should pass 1.5v in to out with a series resistance of 88mOhm.
It should pass 2.5v in to out with a series resistance of 40mOhm.
So, with a 100ma draw with a 2.5v in, the output will be 2.496v.
A 100ma draw with a 5v in, the output will be 4.9967v.
A 1 amp draw at 5v in will give you a 4.967v output.
Well, you get the idea...
The output should max out at 5v with the input as high as 20v, though, since it is linear, with 20v in drawing 100ma, the device will dissipate 1.5 watts burning up, with 12v in, the device will radiate 0.7 watt. You might want to use a mosfet with a slightly beefier package than an TSOP6F if you are drawing the full 100ma.