A way to find out the Source of interrupt?

INT1/0, TWI, WDT but how can i find out which one is the cause?

To be sure, install ISRs for all possible causes and set a boolean value accordingly (must be declared volatile!) which you can check then in the main loop.

INT1/0, TWI, WDT but how can i find out which one is the cause?

That's the list for the ATmega328p, the ATmega2560 additionally wakes up if INT2/3 is fired or a LEVEL interrupt on INT4-7 occurred. But these interrupts must be configured.

Most probably you didn't include the necessary headers to get SLEEP_MODE_PWR_DOWN defined. Then the mode is set to SLEEP_MODE_IDLE which wakes up from the timer call that the Arduino framework does to make the millis() call available. As you didn't post complete code we cannot check for that.