This article describes two software tools, AutoMap and Autolink, that facilitate the use of data-structures in MPI. AutoMap is a program that parses a file of user-defined data-structures and generates new MPI types out of basic and previously defined MPI data-types. Our software tool automatically handles specialized error checking related to memory mapping. AutoLink is an MPI library that allows the transfer of complex, dynamically linked, and possibly heterogeneous structures through MPI. AutoLink uses files generated by AutoMap to automatically define the needed MPI data-types. We describe each of these tools, and give an example of their use. Finally we discuss the internals of AutoLink design, and focus on the performance rationale behind them.