J.H.
My husband and I go through similiar situations with our almost 3 year old. Its as if he is really trying test us and see who is boss! We ask him to pick up [whatever] and throw it away/put it on the table/put in the toy box, etc. and he will say "No" and basically stand there or go on his merry way. We eventually have started taking toys away from him or making him stand next to whatever it is until he picks it up. Its seems SO silly to my husband and I, we are thinking, "just pick up the thing for crying outloud!" But to my son it seems to be a true battle and he will stand his ground for avery long time! But, we've learned we can't back down, so no matter how silly it seems to us or how late it makes us sometimes when we are going someplace we don't let him get away with it. He's getting much better. Regarding your son spitting food, do you think it's b/c he sees that it gets a rise out of you and that's why he does it? Perhaps if you took the other route and ignored the behavier it would lose its appeal for him? Or sometimes what works for my son is for me not say anything, I just go over to him pick him up and relocate him to another room away from the action and say "we do not ***" and I leave him alone there. I don't do that often (don't want to get him used to it), but the few times I've done it have worked for me. Good luck, they can be "trying" little things, can't they?! :o)