The difference between these dishes is the moment the rice meets everything else. In takikomi gohan the rice and the other ingredients cook together from the start. Kamameshi is takikomi gohan cooked in a small pot for one person and served in that pot. In donburi the rice is cooked on its own, and a topping prepared separately is laid over it in a deep bowl.
Takikomi gohan: cooked together
Takikomi gohan is rice cooked from the beginning with vegetables, chicken, fish or shellfish, seasoned with salt, soy sauce or sake. Some versions are seasoned with salt and some with soy sauce. Salt is used when the cook wants the color of the ingredients to show, as with chestnuts, green peas or leafy greens. Soy sauce suits matsutake and shimeji mushrooms, bamboo shoots, chicken and seafood.
When a single ingredient is cooked into the rice to bring out the taste of a season, the dish takes that ingredient's name: matsutake-meshi, kuri-meshi (chestnut rice), takenoko-meshi (bamboo shoot rice), imo-meshi (sweet potato rice), kinoko-meshi (mushroom rice), tai-meshi (sea bream rice) and kaki-meshi (oyster rice).

Rice cooked with many ingredients at once is gomoku-meshi. Gomoku literally says "five items," but it means many ingredients, not exactly five. Dried gourd strips, shiitake, carrot, bamboo shoot, lotus root, konnyaku and fried tofu are typical. Gomoku-meshi is mainly a word of Kantō, the region around Tokyo; in Kansai, the region around Osaka and Kyoto, the same dish is called kayaku-meshi.
Mazegohan: mixed afterwards
Mazegohan is freshly cooked rice, plain or seasoned, with separately seasoned ingredients stirred into it. The same ingredients can go either way. Bamboo shoot rice, matsutake rice and gomoku-meshi are takikomi gohan if the ingredients cook with the rice, and mazegohan if they are simmered separately and mixed in. Nameshi, rice mixed with chopped greens, is a mazegohan.
Kamameshi: takikomi gohan in its own pot
Kamameshi is one kind of takikomi gohan. It is cooked one portion at a time in a small pot, and the pot itself is brought to the table. In another form of kamameshi, seasoned rice is cooked in the small pot and the other ingredients are arranged on top.

Donburi: a topping over cooked rice
A donburi is a bowl about three times the size of an ordinary rice bowl. Fill it with rice, lay a seasoned topping and its sauce over the rice, and the dish is a donburi-mono, also called donburi for short. Unadon (grilled eel), tendon (tempura), katsudon (pork cutlet), oyakodon, gyūdon (beef) and tekkadon, which sets raw tuna on vinegared sushi rice, are all donburi.
Unadon is regarded as the first. The story goes that in the Bunsei era (1818–30) a theater backer who had grilled eel delivered almost every day asked for it to be tucked into a bowl of hot rice so that it would arrive warm. Oyakodon dates from the Meiji era. Chicken, green onion and shiitake are simmered, bound with egg and laid over the rice. Oyako means "parent and child": the chicken and the egg.

Side by side
| Dish | When rice and ingredients meet | Vessel |
|---|---|---|
| Takikomi gohan | Cooked together from the start | — |
| Mazegohan | Mixed after the rice is cooked | — |
| Kamameshi | Cooked together from the start | A small pot for one, brought to the table |
| Donburi | Topping laid over cooked rice | A deep bowl |
Where Tōge no Kamameshi fits
Tōge no Kamameshi is an ekiben, a boxed meal sold at railway stations, and an ekiben packed into a pot-shaped container is also called kamameshi. Its seasoned rice is cooked first, nine toppings are arranged over it, and the whole is packed into an earthenware pot of Mashiko ware.
References
- Kotobank: “Takikomi gohan” (Encyclopedia Nipponica)
- Kotobank: “Mazegohan” (Encyclopedia Nipponica)
- Kotobank: “Gomoku-meshi” (Japanese dictionaries and encyclopedias)
- Kotobank: “Donburi-mono” (Japanese dictionaries and encyclopedias)
- Kotobank: “Oyakodon” (Japanese dictionaries)
- Kotobank: “Kamameshi” (Japanese dictionaries and encyclopedias)
- Oginoya: Tōge no Kamameshi in the ceramic pot
Image credits (resized for display):