My advice: If it looks like you're going to have to do a rebuild - don't do it.
Instead, call around to local junkyards (especially ones without computer inventories) and find a wrecked BMW with a low-ish mileage engine, especially one that you can start and run before buying (though they'll charge a bit more for such an engine, of course). You can probably get the whole junked car (minus any resellable window glass) for way less than half of the cost of a rebuilt engine. If the junker is an E36, you might even be able to snag some spares or swap some parts - carpet, seats, windows, stereo, ECU, wheels, tires, battery, exhaust, etc. I did this with an old Mk I VW Golf GTi. I pulled a complete blue interior from the totalled VW to replace the mildewed and ugly burgundy one in my "racing" GTi, plus four alloy wheels and tires. I had pre-negotiated a cash price of $100 for everything I could pull off the car - they didn't care. They were gonna crush it.
Engine swapping requires an engine hoist; but they're not expensive to buy. You can probably have the guys at the junkyard pull the motor for you and drop it (carefully) into a waiting pickup bed for hauling to your shop. If you don't have suitable work space, talk to a local friendly garage owner about renting after-hours shop time. Sometimes they'll do it. Of course, better yet would be to talk a local mechanic into doing the work for you after hours, for cash of course.
Think of it as an automotive adventure...
R