Oops, so I looked at the wrong code. So JNA should get the alignment of TYPES and UARTCTL structures right out of the box, unless it has a bug of course. Now with ALIGN_NONE, the actual size of the Java version of UARTCTL should be two bytes less than the size of the C-version of UARTCTL. The thing is, that the alignment of the members of a struct also affects the size of the struct which is always padded to be a multiple of the largest alignment of any member of the struct. Now on the Java end, you say the alignment of all members is one. I guess, since it's only 2 bytes, this doesn't really yield any bugs. But it's dangerous nonetheless. Could you add a comment that we remember to look into this? I couldn't find any special attributes or pragmas in Lego's headers.