Put up a rewards system every time he does the right thing and stamp a star on his hand. Kids love this and will often do the things needed. As for spitting during brushing of teeth, try to look for videos teaching kids to spit the water when brushing their teeth.