Most people are talking the infinitive case for “eat”, but I’d like to point out the verb, “have had”, is the present perfect case. Still confusing and still agree with your simplification of “I ate too much”. But there’s still a meaningful difference between the two sentences.