If I were you, I'd push the boundary thing WAY further. And he will blame YOU kicking and screaming as you throw him out of your house... who wouldn't in his position? The guy has it made, you must admit... at least from his POV.
So if he wants to yell, call names, blame you, whatever, simply say, okay, I'm the bad guy (doesn't mean you have to agree with him. Just means you refuse to argue about it), and KICK HIS BUTT OUT. It is the ONLY thing that will motivate him to change; if he does, then you might have a chance. If he doesn't, at least you don't have him leeching off you.
I'm sorry if I sound harsh, but I really do feel you just need to cut to the chase.