Using a screwdriver or pointed implement, make two holes in the top of the coconut to drain out any milk that might be inside and keep this to one side. Break open the coconut and remove the meat. Divide the meat into two, chop one half roughly into pieces and blend together with the milk from the coconut in a liquidiser, adding more water if needed to make a fairly thick pulp. Grate the remaining coconut, using the largest side of the grater. Place the grated coconut to one side.
Meanwhile wash the rice well and remove any husks or stones. Peel and very finely chop the onion. Heat the ghee or cooking oil in a large saucepan and add then add the rice, drained of as much water as possible. Stair well to ensure each grain is well coated with the oil.
Now add the coconut milk mixture from the liquidiser and a sufficient amount of water just to cover the rice. Increase the heat and bring to the boil. Sprinkle in the salt and black pepper, simmer for 15 minutes, until the rice is al dente. Quickly mix in the rest of the grated coconut, keeping a little on the rice. You will note that the rice will stick together. Do not expect every grain to separate as this dish is designed to be rather more solid due to the presence of the coconut milk, binding the rice grains together. In any event, you will have a very good excuse for not having fluffy separated rice!