Ich hab nach der TWI-Anleitung im Datenblatt des Atmega32 gearbeitet.
(Das ist bei 168 oder Mega16 auch nicht anderes)

Da sind vier Tabellen
1 MasterTransmitter
2 MasterReceiver
3 SlaveReceiver
4 SlaveTransmitter
die dir sagen welche Flags du wann setzen kannst (oder sollst)

Am einfachsten ist IMHO Slave Receiver, fang vielleicht damit an.

Ich find auch, daß es im Interrupt leichter ist, weil die Statusabfrage nur an einer Stelle stattfindet, sind muß man ja nach jedem Schmarren immer das Gleiche reintun.

Was die Sache bei mir etwas kompliziert, ist nur die Multi-Master Geschichte, wo sich die Mega's gegenseitig reinquatschen können.