struct
        {
                uint8_t Protocol;
-       } ATTR_PACKED SetMode_XPROG_Params;
+       } SetMode_XPROG_Params;
 
        Endpoint_Read_Stream_LE(&SetMode_XPROG_Params, sizeof(SetMode_XPROG_Params), NULL);
 
        {
                uint8_t  MemoryType;
                uint32_t Address;
-       } ATTR_PACKED Erase_XPROG_Params;
+       } Erase_XPROG_Params;
 
        Endpoint_Read_Stream_LE(&Erase_XPROG_Params, sizeof(Erase_XPROG_Params), NULL);
-       Erase_XPROG_Params.Address = be32_to_cpu(Erase_XPROG_Params.Address);
+       Erase_XPROG_Params.Address = SwapEndian_32(Erase_XPROG_Params.Address);
 
        Endpoint_ClearOUT();
        Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM);
                uint32_t Address;
                uint16_t Length;
                uint8_t  ProgData[256];
-       } ATTR_PACKED WriteMemory_XPROG_Params;
+       } WriteMemory_XPROG_Params;
 
        Endpoint_Read_Stream_LE(&WriteMemory_XPROG_Params, (sizeof(WriteMemory_XPROG_Params) -
                                                            sizeof(WriteMemory_XPROG_Params).ProgData), NULL);
-       WriteMemory_XPROG_Params.Address = be32_to_cpu(WriteMemory_XPROG_Params.Address);
-       WriteMemory_XPROG_Params.Length  = be16_to_cpu(WriteMemory_XPROG_Params.Length);
+       WriteMemory_XPROG_Params.Address = SwapEndian_32(WriteMemory_XPROG_Params.Address);
+       WriteMemory_XPROG_Params.Length  = SwapEndian_16(WriteMemory_XPROG_Params.Length);
        Endpoint_Read_Stream_LE(&WriteMemory_XPROG_Params.ProgData, WriteMemory_XPROG_Params.Length, NULL);
 
        // The driver will terminate transfers that are a round multiple of the endpoint bank in size with a ZLP, need
                uint8_t  MemoryType;
                uint32_t Address;
                uint16_t Length;
-       } ATTR_PACKED ReadMemory_XPROG_Params;
+       } ReadMemory_XPROG_Params;
 
        Endpoint_Read_Stream_LE(&ReadMemory_XPROG_Params, sizeof(ReadMemory_XPROG_Params), NULL);
-       ReadMemory_XPROG_Params.Address = be32_to_cpu(ReadMemory_XPROG_Params.Address);
-       ReadMemory_XPROG_Params.Length  = be16_to_cpu(ReadMemory_XPROG_Params.Length);
+       ReadMemory_XPROG_Params.Address = SwapEndian_32(ReadMemory_XPROG_Params.Address);
+       ReadMemory_XPROG_Params.Length  = SwapEndian_16(ReadMemory_XPROG_Params.Length);
 
        Endpoint_ClearOUT();
        Endpoint_SelectEndpoint(AVRISP_DATA_IN_EPNUM);
        struct
        {
                uint8_t CRCType;
-       } ATTR_PACKED ReadCRC_XPROG_Params;
+       } ReadCRC_XPROG_Params;
 
        Endpoint_Read_Stream_LE(&ReadCRC_XPROG_Params, sizeof(ReadCRC_XPROG_Params), NULL);