Why does he keep picking fights?

I have this problem with my boyfriend. He keeps picking fights over stupid sh*t with me. And then when I get emotional he calls me "pathetic", "sad", "too sensitive" etc. I used to talk to him about the problems I was going through with my parents and then he told me to stop talking to him about my family life because it's none of his business. I respected that and I stopped. And we were having fun today and everything was light & happy. All of the sudden he asks me why I didn't go to my grandfathers wedding. I told him I had such a strong relationship with my grandmother (she passed away from Pancreatic Cancer) and it's just hard on me. He decided to give his opinion on how I was being negative and a miserable person. And how horrible I was being to my grandfather. I told him to stop and I don't want his opinion on this because it's my family life and I don't want to talk to him about it. And he just kept going and I lost it. I went mental. I am so sick of him doing this sh*t and hitting my nerves with things really personal and then when I start crying and I get upset he tells me I am pathetic. I feel like he intentionally picks fights and does the cruelest things just so he can inflict emotional pain on people. What the f*** is wrong with him?