Rose, I have to agree with the others here, it's time for him to leave.
Name calling and belittling isn't okay. Taking responsibility as a family member means doing dishes and cleaning and laundry and to ignore responsible chores isn't okay.
You are a terrific person, Rose, and you have given him lots of chances. Now give him the chance to find his own place and leave you the peace of your own home.
I will come visit with cheesecake and we can throw out the paper plates and not even make a mess.