This is how I got a BSP to work perfectly (well to appear and allow me to walk round it anyway) including Textures AND lighting. Collision is an issue I have not looked at yet.
Get Quarke (I used the new 6.3) and set it to make quake 3 files. (You can Buy Quake III with I and II for £20 now!)
1.Make your map with textures. I used the default box room that you start with in Quarke and textured it with the DARKMATTER textures. You also need a light and a info_start_point at least.
2.When finished, Use the command on the Quake 3 menu to export all the textures you have used(preferably your own!

) and put them ALL into a zip.
3.Now Use the "recompile all" option (I think thats what it's called) option in the Quake 3 menu to make the BSP with lighting et all (without running the game). Add that to the zip.
4.Move the zip to the directory where you want to put your game and rename it with .pk3 extension. (.pak did not work.)
5.In your code use the :
load bsp "your_pak_name.pk3","your_bsp_name.bsp"
6. Et Voila!
I have not tried anything larger so I'm not sure what it's limits are!
Now someone sort out a way to do decent collision detection, plz!!