Your question suggests you're at that point where you need to read a good text on design patterns, and I can hardly recommend a better starting point than the 'Gang of Four' book, "Design Patterns - Elements of Reusable Object-Oriented Software". They discuss MVC and most of the important patterns, which answer your question in detail.
It is not 'required' or even 'typical' to insist on a single controller class. Within AppKit, you'll find there are controllers reflecting several of the classes implementing controls (buttons, text fields, sliders, etc), each one specialized for a particular job. For that matter, there isn't usually a single view class, either, nor is there always a single model class. If you had a collection of objects, for example, that were to be displayed alternately as a pie chart, a text chart and a bar chart, you might have 3 view objects, one for each format. Similarly, you might have a control object associated with each of these views specializing in control responses specific to each of the view formats uniquely.
The "Gang of Four" book, however, takes you way beyond MVC, into recognizing variations of design patterns that apply to a range of typical, recognized design issues that repeatedly appear in the history of ambitious software development projects, which apply generically to a great many applications in one way or another. The book covers how 8 patterns were used in the design of a text/graphic editor application called Lexi. Design patterns are described in a language independent fashion, drawing upon sample implementations in Java, C++ and other languages. One pattern they don't discuss is RAII, which may have been considered to specific to C++, since several popular languages can't easily support the pattern.