You are not over-reacting. Your mom knows she is doing something wrong or she wouldn’t act differently when she is in public. Your dad knows something is wrong or he wouldn’t be taking your side when he witnesses these episodes. No kid deserves to be hit and called names by the parent who is supposed to love and protect them.
I can’t know if your mother is ill, over-stressed herself, has inadequate parenting skills or some combination. I do know that this has to stop. Your dad at least believes you but seems powerless to stop it. Your bestie is right. You (and your dad) need help.
Ask your dad if he will take the initiative to get you all into family therapy. If he can’t or won’t, do talk to a teacher or counselor you trust at school. School personnel often know of ways for kids like you to get some help.
In the meantime, stay out of your mom’s way. Get involved in activities that keep you busy after school. Do assignments in the library. Resist the temptation to argue with your mom. It will probably only make things worse. Instead, tell her you are sorry she feels that way and leave as gracefully as you can.
I hope your dad steps up and helps. If you think it would help, show him your letter and this response.
I wish you well.