It sounds like you drove him to this :( A guy with no problem keeping aside his ego and admitting his faults, has abandoned you, you might as well conclude that it's all getting too much for him. Please try looking past your own woes, he said he loves you but cannot bear anymore of the pain being inflicted upon him. He sounds like a genuine person worth going back to. He'd love to know that you value him just as much and are willing to put in efforts. When your other half gets angry, instead of retaliating and making it a war of ego, think about them.
I went through the same phase, my guy told me the harshest things about myself and they were actually true. After this mega fight, he said he needs a break for months. Since he called my out on my flaws, I accepted them immediately and apologized and asked him not to give up on us. I wouldn't say we've nullified all of our problems, but he's very happy and stress free since then.
Guys don't like hearing you complain or fighting. Even when there are issues, try taking them out with him. If he cannot change himself, you gotta evaluate what's more important to you, him or the issue. You have to accept that most of the times, HE WON'T CHANGE. It's pretty hard finding decent people men out there, so don't throw away all the love for little issues.
For example, my major complain always was that he has no time for me. That I'm his last priority, he places everything about us at the end. But it isn't so, men are weird :p They think of one thing at a time, while his career might be his first priority, it doesn't mean you have no place in his heart.
All in all, true love is feeling 'Darling when you're in pain, my world stops.'