<p>I'm in need of a lightweight library for 2d &amp; 3d vectors and 3x3 &amp; 4x4 matrices. In basic C.
Just so I don't reinvent the wheel suboptimally.</p>

<p>Any suggestions?</p>

Assuming you're coding for x86, you might look into Intel's
Integrated Performance Primitives
(IPP) and
Math Kernel Library
(MKL).  These provide super-duper-fast libraries (probably faster than anyone else could write, since they're optimized for non-public microarchitecture details) for lots of common operations, including vectors and matrices.