See /usr/include/lastlog.h for the format of an individual entry.
I think the file is just an array of those, indexed by uid. That
means the file is probably sparse, i.e. has unallocated "holes" that
would be filled in by most file utilities like mv, cp, etc. making
it much bigger. Ufsdump/ufsrestore can handle sparse files without
filling them in, very little else can.
In 2.5.1, the maximum uid and gid size goes 'way up, to the max
value of a signed 32 bit integer. Higher values can break things.
For example, values > 76695844 would cause lastlog to go over
the 2Gb max file size, causing last login info for those uids
not to be retained, and according to the 2.5.1 release notes, also
breaking password aging for them.
ftp> get |fortune
377 I/O error: smart remark generator failed