Cheap people suck, especially when they try to mooch as well. Just don't stand for it, he is taking advantage of the fact that everyone is too nice to say something about it. I doubt he'd have much to say if he were called on his actions, especially with the whole $20 for a $30+ dinner thing
I've had "friends" like that who took advantage (just be there for the free drinks and drink way more than their share because it was "free"), since most nights I would just open bar it for everyone, but my boyfriend got sick of it. So I started being more careful with who I treated, and it helped sift out the leeches. If the leech knows they can't take advantage anymore they are more inclined to go away. And maybe if you and your friend make it known that you're not going to be paying for the extras, he'll either have to go away or start eating less or *gasp* start paying his fair share.
I've had "friends" like that who took advantage (just be there for the free drinks and drink way more than their share because it was "free"), since most nights I would just open bar it for everyone, but my boyfriend got sick of it. So I started being more careful with who I treated, and it helped sift out the leeches. If the leech knows they can't take advantage anymore they are more inclined to go away. And maybe if you and your friend make it known that you're not going to be paying for the extras, he'll either have to go away or start eating less or *gasp* start paying his fair share.