derp. reread the mmp protocol docs and it states you just need to trim it to 160 characters.
The format of this command is WORK data mask, where data is an 80-byte hex encoded (i.e. 160- hex-character) string. The data is exactly as if you ran a Bitcoin getwork() and truncated the "data" field to 160 hex characters.
Since that was easy I will just skip the WorkUnit class and pass it directly to the call...
[20/06/2011 19:57:35] Phoenix 1.50 starting...
[20/06/2011 19:57:35] Connected to server
MSG: There are now 1 connections
MSG: Everyone welcome default to the pool!
MSG: There are now 2 connections
MSG: Everyone welcome sak to the pool!
[1.40 Mhash/sec] [0 Accepted] [0 Rejected] [MMP]
Ready to accept connections.
[127.0.0.1:52514] "('login', ['default', 'default '])"
[127.0.0.1:52514] "('meta', ['device', 'Intel(R) Core(TM)2 Duo CPU P7550 @ 2.26GHz'])"
[127.0.0.1:52514] "('meta', ['kernel', 'poclbm r95'])"
[127.0.0.1:52514] "('meta', ['version', 'Phoenix Miner v1.50'])"
[127.0.0.1:52514] "('meta', ['os', 'Darwin Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; root:xnu-1504.9.37~1/RELEASE_I386'])"
[127.0.0.1:52514] "('meta', ['cores', '2'])"
[127.0.0.1:52514] "('more', [])"
[127.0.0.1:52514] "('meta', ['rate', '1438'])"
[127.0.0.1:52514] "('meta', ['rate', '1437'])"
[127.0.0.1:52514] "('meta', ['rate', '1507'])"
[127.0.0.1:52514] "('meta', ['rate', '1482'])"
[127.0.0.1:52514] "('meta', ['rate', '1507'])"
[127.0.0.1:52514] "('meta', ['rate', '1515'])"
[127.0.0.1:52527] "('login', ['sak'])"
[127.0.0.1:52514] "('meta', ['rate', '1430'])"
[127.0.0.1:52514] "('meta', ['rate', '1519'])"
[127.0.0.1:52514] "('meta', ['rate', '1652'])"
AWWW YEAH. I wonder if it even worth splitting the getworks like in the multiminer? When I point my 5870s at it they chew through more requests like mad.