Porting Arduino code to AVR/C++ input not working?
During the creation of this question I found out the answer... Though I wanted to share it with you guys for later reference.
It has been quite a time since I have worked with AVR. 

You should read pins from PINx

You should set pins in PORTx

Set DDRx to 1 for OUTPUT and to 0 for INPUT

^ This is fun because PIC/Microchip MCU's use 1 for input and 0 for output.

See code below:

#define F_CPU 16000000UL
#include &lt;avr/io.h&gt;
#include &lt;util/delay.h&gt;

#define set_bit(Y,bit_x) (Y|=(1&lt;&lt;bit_x))
#define clear_bit(Y,bit_x) (Y&amp;=~(1&lt;&lt;bit_x))
#define isset_bit(Y,bit_x) (Y&amp;(1&lt;&lt;bit_x))
#define toggle_bit(Y,bit_x) (Y^=(1&lt;&lt;bit_x))

int main( ){
    DDRB = 0xFF;
    DDRD = 0x00;

    while(1){
        if((PIND&amp;(1&lt;&lt;PD5))){
            set_bit(PORTB,PB5);
        }else{
            clear_bit(PORTB,PB5);
        }
    }
}