You're right about the 20 MB limit.
Amit Singh says
When a file is opened on an HFS+ volume, the following conditions are tested:
* If the file is less than 20 MB in size
* If the file is not already busy
* If the file is not read-only
* If the file has more than eight extents
* If the system has been up for at least three minutes
If all of the above conditions are satisfied, the file is relocated -- it is defragmented on-the-fly.
As understand, you can achieve the same defragmenting effect by moving the 20+ MB file to another drive, then back to the working system. Relocating the file defragments it.