Cut bread into cubes or tear into small pieces. Place in a greased 9 x 13 inch or other 3 quart baking dish. In a medium bowl whisk together eggs, milk, half and half, lime juice, sugar and coconut extract.. Pour over bread in pan. Cover and refrigerate for at least 2 hours or overnight.
Preheat oven to 350 degrees.
In a small bowl combine coconut, sugar, flour and lime zest. Cut butter into small pieces and place over flour mixture. With a fork, blend butter into mixture until it resembles small crumbs. Sprinkle over bread in pan. Cover and bake for 20 minutes. Remove foil and bake for another 20-30 minutes or until golden brown and cooked through. Test by poking a knife in the middle, if it comes out clean it should be baked through.