As long as you remember that you cannot control him or change him even if you do everything "right" (by his definition).
Frankly I can't find one darned thing "wrong" with any of the behavior you do that bugs him, including, asking for a hug when he has behaved badly... I know HE'S the one you're trying to get along with, not me, but the stuff he is finding fault with is entirely within the bounds of normal, civil, acceptable, non-weird behavior. However, HIS disrespect of YOU violates my particular standards of civility.
What I'm getting at is don't let him convince you that treating you/speaking to you like crap (e.g., "you're too fat to turn me on") is something you deserve and that it's normal/okay behavior. It's not.