I'd wonder if it's his teeth? Maybe the hard kibble is hurting to eat...the other things you mentioned are soft. Try soaking it in warm water til it's soft, or mix it with a bit of canned for a bit and see if he's happier about it. That's a really extreme reaction for just being fussy, especially coming on so quickly. Sounds more like a pain response to me. Didn't you say he was about 4 months old? That's the age when they shed their baby teeth and their adult teeth come in. It could be teething pain.