In my experience (obviously I don't know you, so don't be offended), parents who have problems with children who yell orders and make demands of their parents are simply copying their parents. And if he doesn't listen to you, it's because you haven't thoughrouly shown him the consequences of NOT listening to you. Parents forget that kids were not BORN to listen and follow directions- you have to show them both how to listen and why. My guess is, up to this point, you ask him a few times to do something, he ignores you, you either forget it or do it yourself. Am I right? Well, this doesn't work on any child. You have to ask once (make sure you are heard and are clear) and then present the consequence for not obeying. If you want him to clean up, say "I need you to put your toys away" (avoid using words like "now"), and if he doesn't comply, you say "if you choose not to put your toys away you are going to sit in time out." Take a cue from Supernanny and make a set of house rules and discuss them with him, and talk about the consequences of breaking rules (rules like treat each other with respect, no spitting, use soft touches, etc... and whatever rules you choose have to be followed by everyone, mom and dad included).
It is best, at this age, to avoid power struggles if at all possible. This does not mean give in- this means you note when they are most likely to take place and prevent them. If getting dressed is a power stuggle, get him involved in the process by letting him choose between two outfits (only give two choices, more is too overwhelming). Whatever the problem, involving the child in the decision making process somehow empowers them and makes them feel more in control, thus reducing frustration on his part and lessening the likelihood of a violent response like spitting or scratching.
As far as consequences go, try to be as unemotional about them as possible. Sometimes kids are simply trying to get a reaction out of us, or to see what the reaction will be. Yelling, name calling, spanking, hand slapping, etc all tend to be emotional responses. Give yourself a minute to calm down, then follow through on rational consequences. This can be timeout, but not always. Lately my daughter has decided that throwing her spoon at the table is fun. She does it once and she is done and has to leave the table. I don't react other than to say "no no throw, your spoon is for eatting" in a firm but not upset voice, then I move her out of her seat and ignore the fit she inevitably throws. She's done it, I think, a total of three times before she decided it wasn't really fun. Regardless of the consequences, don't give more than one warning, and always follow through. Consistancy pays off!