startail - I have two children, one of whom was incredibly tantrummy as a pre-schooler, the other who was aggressive to other children. So I have suffered through those hard years.
I honestly think focussing on punishments is missing the point. Very often changing the behaviour in young children is about avoiding or preventing it. eg, tantrums relating to hunger or over-stimulation, aggression relating to tiredness. Watching and swooping in when you see a child getting angry and likely to act out. Taking them away from a situation to calm down. If they do hit, for instance, threatening to leave and then following through.
Getting co-operation for everyday things like dressing through positivity - playfulness, using positive commands (do this) not negative (don't do that).
Understanding that parenting at this age is not about instant results but a "drip drip" approach. Realising that they watch our behaviour to see if we can maintain self-control, so they can learn to develop self-control themselves. I agree that DCs don't develop empathy and self-control until a certain age. Hitting and becoming angry is not acceptable discipline until that happens. What we do can help that process, and hitting is not the way to do that.
If you do punish, then it has to fit the crime: if you keep snatching a toy, then you don't get to play with it. If you draw on the walls (actually that one can be avoided by not allowing access to crayons and leaving them alone with them), then you help to clean it off.
There are lots of ways of disciplining if you have the will and energy to do it. unfortunately lots of us get bogged down, and even depressed, and shouting and hitting become habits, but then it's our responsibility to get help for that.
Sorry for the essay. I feel very strongly about this