ENC28J60 Bootloader

#define ENC28J60_PIN_SCK	13
#define ENC28J60_PIN_MISO	12
#define ENC28J60_PIN_MOSI	11
#define ENC28J60_PIN_CS		10

These values are wrong. You're not changing Arduino code but AVR code so pin numbers are not the pins numbers Arduino chose for it's boards but pin numbers of the chosen IO port of the ATmega328 controller. The range is from 0 to 7, so this has to read:

#define ENC28J60_PIN_SCK	5
#define ENC28J60_PIN_MISO	4
#define ENC28J60_PIN_MOSI	3
#define ENC28J60_PIN_CS		2

You have to change the values consistently:

#define SPI_PORT	PORTB
#define SPI_DDR		DDRB

must be

#define SPI_PORT	PORTD
#define SPI_DDR		DDRD