Prescaler 1 & micros() in wiring.c

I've got a problem with the micros() function and need guidance to correct this issue.
I've designed a custom board based on ATMega2560.

I needed to use a PWM of 60Khz, so I ended up hooking up the PWM pin to Digital Pin 4
PWM works fine but of course now all Timer0 related functions are off.

The solution proposed to change the MICROSECONDS_PER_TIMER0_OVERFLOW in the wiring.c libaray, solves the issue with millis(), however delay() and micros() are now 64 times faster.

delay() is using micros(), so fixing micros() should solve my problem (I believe).

So I'm now looking at the micros function and try to understand why my changes are not working:

This is the original code in wiring.c

unsigned long micros() {

	unsigned long m;
	uint8_t oldSREG = SREG, t;
	m = timer0_overflow_count;
#if defined(TCNT0)
	t = TCNT0;
#elif defined(TCNT0L)
	t = TCNT0L;
	#error TIMER 0 not defined

#ifdef TIFR0
	if ((TIFR0 & _BV(TOV0)) && (t < 255))
	if ((TIFR & _BV(TOV0)) && (t < 255))

	SREG = oldSREG;
	return ((m << 8) + t) * (64 / clockCyclesPerMicrosecond());

So the TCNT0 register should now increase 64times faster if I'm understanding correctly.
So basically I thought that if I increase the t value every 64 times it would solve it.

So I changed the return to return ((m << 8) + (t % 64)) * (64 / clockCyclesPerMicrosecond());

However this doesn't really solve the problem, so I'm confused.
I've looked around a lot and read various things, amongst them this

But none of them does really provide a solution and I need some help to figure this out

Why don't you just use a different timer / pin for PWM?