The new kernel is still far from finished - probably A7 - so the suggested lightmap importer would be the way to go.
Yes, you just need the vertex buffer, and just need to overwite the two floats u2/v2. This is the pseudocode:
Code:
LPD3DXMESH pMesh = (LPD3DXMESH) ent_mesh(entity);
BYTEPTR pVB;
pMesh->LockVertexBuffer(0,&pVB);
for (int i=0; i<numverts; i++)
{
VERTEX_TLSHADED *v = ((VERTEX_TLSHADED*)pVB) + i; // see vertex format in "shader"
v->u2 = lightmap_u2[i];
v->v2 = lightmap_v2[i];
}
pMesh->UnlockVertexBuffer();