My MIL and FIL had nothing nice to say about me from the time I started dating their daughter. My FIL was still cussing me on his death bed. I took my wife to see him and stood by his bed with the rest of the children while he berated me in front of everyone. I was nice to him all the way to his last breath. My BILs each came up to me afterwards, separately, and apologized to me for their father's tirade and behavior. (So did my MIL. ;-D ) My being nice finally paid off. My MIL went from mean and nasty to neutral after about 15 years. Now I'm her favorite SIL. They didn't like my frugality, but accepted my money when they had hard times and needed the money my frugality provided.
You can accomplish this with your mom if you take the same approach. Water, as soft and pliable as it is, can wear away granite. (Yellowstone and the Grand Canyon.) Be nice, be kind.
I would have thanked your mom for her input and suggestions and said something like, "Thanks mom, I'll keep that in mind." The day of the party I would have told your mom that I had some vegan food for the cousin. If she asked what, I'd have told her about the salad and what ever else.
BTW, only children seem to have a harder time than if they had multiple brothers and sisters in situations with a mom like yours. Your mom may think buying stuff for you shows love because she was treated that way by her parents. You are lucky to recognize that and have the intelligence to break the cycle. I'm glad you don't show your kids that is the way to show love. (Just a thought: When a husband wants to show his wife he loves her he is more apt to buy her something, jewelry, roses, a pretty sweater, than he is to wash the dishes or write her poetry.)
I hope you never get so mad at your children that you call them names like your mom called you. And if you accidently do, I know you will be humble enough to apologize so they won't think ill of you later on in life.
Good luck to you and yours.